package fr.uniscol.service.impl;

import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import fr.uniscol.dao.IClasseDao;
import fr.uniscol.model.BaseAnneeScolaire;
import fr.uniscol.model.Classe;
import fr.uniscol.model.EtablissementModel;
import fr.uniscol.model.MEF;
import fr.uniscol.service.IClasseService;
import org.springframework.transaction.annotation.Transactional;

@Service("classeService")
public class ClasseServiceImpl implements IClasseService {

	@Autowired 
	private IClasseDao classeDao;
	
	@Override
	public Classe getClasseById(long classeId) {
		Classe classe = classeDao.getClasseById(classeId);
        
        classe.setMefs(classeDao.getMefsAppartenanceOfStructure(classe));
        
        return classe;
	}

	@Override
	public List<Classe> getAllClassesOfEtablissement(BaseAnneeScolaire base) {
		return classeDao.getAllClassesOfEtablissement(base);
	}
 
	@Override
    @Transactional(readOnly = false)
	public Classe saveClasse(Classe classe) {
		
		Classe classeUpdated = classeDao.saveClasse(classe);
        
        return classeUpdated;
	}

    @Override
    public boolean deleteClasse(Classe classe) {
        return classeDao.deleteClasse(classe);
    }

    @Override
    public List<MEF> getMefsAppartenanceOfStructure(Classe classe) {
        return classeDao.getMefsAppartenanceOfStructure(classe);
    }
}
